package pms.dao.impl;

import pms.dao.EmpDao;
import pms.entity.Emp;
import pms.until.JDBCTools;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
    public class EmpDaoImpl implements EmpDao {
        private JDBCTools tools=new JDBCTools();
        @Override
        public Emp queryEmpByNameAndPwd(String lname, String lpwd) {
            Emp emp=null;
            ResultSet rs=tools.query("select * from t_emp where emp_lname=? and emp_lpwd=md5(?)",lname,lpwd);

            try {
                if (rs.next()){
                    emp=new Emp();
                    emp.setEmp_id(rs.getInt("emp_id"));
                    emp.setEmp_lname(rs.getString("emp_lname"));
                    emp.setEmp_lpwd(rs.getString("emp_lpwd"));
                    emp.setEmp_rname(rs.getString("emp_rname"));
                    emp.setEmp_sex(rs.getString("emp_sex"));
                    emp.setEmp_status(rs.getString("emp_status"));
                    emp.setEmp_role(rs.getString("emp_role"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                tools.clossAll();
            }
            return emp;
        }

        @Override
        public boolean addEmp(Emp emp) {
            int i=tools.update("insert into t_emp(emp_lname,emp_lpwd,emp_rname,emp_sex,emp_status,emp_role) value(?,md5(?),?,?,?,?)",emp.getEmp_lname(),emp.getEmp_lpwd(),emp.getEmp_rname(),emp.getEmp_sex(),emp.getEmp_status(),emp.getEmp_role());
            return i>0;
        }

        @Override
        public boolean queryEmpByLname(String lname) {
            boolean result=false;
            ResultSet rs= tools.query("select * from t_emp where emp_lname=? ",lname);
            try {
                if (rs.next()){
                    result=true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                tools.clossAll();
            }
            return result;
        }



        @Override
        public List<Emp> queryAllEmp() {
            List<Emp> list = new ArrayList<>();
            ResultSet rs = tools.query("select * from t_emp");
            try {
                while (rs.next()) {
                    Emp emp = new Emp();
                    emp.setEmp_id(rs.getInt("emp_id"));
                    emp.setEmp_lname(rs.getString("emp_lname"));
                    emp.setEmp_lpwd(rs.getString("emp_lpwd"));
                    emp.setEmp_rname(rs.getString("emp_rname"));
                    emp.setEmp_sex(rs.getString("emp_sex"));
                    emp.setEmp_status(rs.getString("emp_status"));
                    emp.setEmp_role(rs.getString("emp_role"));
                    list.add(emp);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                tools.clossAll();
            }
            return list;
        }

        @Override
        public boolean updateEmp(Emp emp) {
            int i=  tools.update("update t_emp set emp_rname=?,emp_lpwd=md5(?),emp_sex=?,emp_role=?,emp_status=? where emp_id=?",
                    emp.getEmp_rname(),emp.getEmp_lpwd(),emp.getEmp_sex(),emp.getEmp_role(),emp.getEmp_status(),emp.getEmp_id());
            return i>0;
        }

        @Override
        public Emp queryEmpNameById(Integer id) {
            Emp emp=null;
            ResultSet rs=tools.query("select emp_rname from t_emp where emp_id=?",id);
            try {
                if (rs.next()){
                    emp=new Emp();
                    emp.setEmp_rname(rs.getString("emp_rname"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                tools.clossAll();
            }
            return emp;
        }
        @Override
        public Emp queryEmpById(int empid) {
            Emp  emp=null;
            ResultSet rs=tools.query("select * from t_emp where emp_id=?",empid);
            try {
                while(rs.next()){
                    emp=new Emp();

                    emp.setEmp_id(rs.getInt("emp_id"));

                    emp.setEmp_lname(rs.getString("emp_lname"));
                    emp.setEmp_lpwd(rs.getString("emp_lpwd"));

                    emp.setEmp_sex(rs.getString("emp_sex"));
                    emp.setEmp_rname(rs.getString("emp_rname"));
                    emp.setEmp_status(rs.getString("emp_status"));


                    int   deptid= rs.getInt("emp_dept");
                    //调用deptdao的方法获取部门id对应的部门对象

                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            finally {
                tools.clossAll();
            }

            return emp;
        }
    }

